home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 21
/
Aminet 21 (1997)(GTI - Schatztruhe)[!][Oct 1997].iso
/
Aminet
/
mus
/
midi
/
MusicXRexxMacs.lha
/
macros
/
REVERSE.mxe
< prev
Wrap
Text File
|
1997-02-05
|
2KB
|
123 lines
/* reverser */
OPTIONS RESULTS
MXREQUEST "REVERSE,Esrever"
if result == 0 then exit
MXPOINTER "sleepy"
GETBARDATA
if BARDATA.SELECT == 'NONE' then do
MXREPORT "Needs selected notes!"
exit
end
else
BEGINSCAN 'selected'
if result ~= 0 then do forever
NEXTEVENT
if result == 0 then break
DUR = EVENT.STOP.CLOCKS - EVENT.START.CLOCKS
SIZ = BARDATA.MEASURE
ARP = SIZ - EVENT.START.CLOCKS
PAR = SIZ - ARP
RAT = BARDATA.BEAT
TAR = BARDATA.STEP
if EVENT.TYPE == 'NOTE' then
if EVENT.STOP.BARS = EVENT.START.BARS then do
EVENT.START.CLOCKS = (SIZ - DUR) - EVENT.START.CLOCKS
EVENT.STOP.CLOCKS = (SIZ + DUR) - EVENT.STOP.CLOCKS
REPLEVENT
end
if EVENT.TYPE == 'NOTE' then
if EVENT.STOP.BARS = EVENT.START.BARS + 1 then do
EVENT.START.CLOCKS = (SIZ - ARP) - EVENT.START.CLOCKS
EVENT.STOP.CLOCKS = (SIZ + ARP)-2*SIZ
REPLEVENT
end
end
ENDSCAN
GETBARDATA
if BARDATA.SELECT == 'NONE' then do
MXREPORT "No events selected or marked!"
exit
end
else
BEGINSCAN 'selected'
if result ~= 0 then do forever
NEXTEVENT
if result == 0 then break
DUR = EVENT.STOP.CLOCKS - EVENT.START.CLOCKS
SIZ = BARDATA.MEASURE
ARP = SIZ - EVENT.START.CLOCKS
PAR = SIZ - ARP
RAT = BARDATA.BEAT
n = (BARDATA.STOP.BARS+1) - BARDATA.START.BARS
do z = 1 to n
IF EVENT.START.BARS = (BARDATA.START.BARS - 1) + z then do
EVENT.START.BARS = EVENT.START.BARS + (2*n-(z+(z-1)))
EVENT.STOP.BARS = EVENT.STOP.BARS + (2*n-(z+(z-1)))
REPLEVENT
end
end
END
ENDSCAN
GETBARDATA
if BARDATA.SELECT == 'NONE' then do
MXREPORT "No events selected or marked!"
exit
end
else
BEGINSCAN 'selected'
if result ~= 0 then do forever
NEXTEVENT
if result == 0 then break
DUR = EVENT.STOP.CLOCKS - EVENT.START.CLOCKS
SIZ = BARDATA.MEASURE
ARP = SIZ - EVENT.START.CLOCKS
PAR = SIZ - ARP
RAT = BARDATA.BEAT
n = (BARDATA.STOP.BARS+1) - BARDATA.START.BARS
if EVENT.TYPE == 'NOTE' then do
EVENT.START.BARS = EVENT.START.BARS - n
EVENT.STOP.BARS = EVENT.STOP.BARS - n
REPLEVENT
end
end
MXPOINTER 'NORMAL'
EXIT